// 定义一个父类
class Enemy {
  var x, y;

  Enemy(this.x, this.y);
}

// 定义混入
mixin Share on Enemy {
  fly() {
    print("飞到x=$x, y=$y位置");
  }
}

// 定义一个子类，继承 Enemy，混入 Share
class Plane extends Enemy with Share {
  var score;

  Plane(x, y, score): score = score, super(x, y);

  getScore() {
    print("击落敌机得分 $score");
  }

  @override
  String toString() {
    return "Plane { x=: $x, y=: $y, score=: $score }";
  }
}

// 入口主函数
void main() {
  var p1 = Plane(50, 100, 5);
  print(p1);
  
  // 可以调用混入的 fly() 方法
  p1.fly();
  p1.getScore();
}
